본문으로 건너뛰기

23.06.23

오늘 한 일

  • CS 스터디 정리 및 발표
  • 테오 스프린트 3일차

하루 요약

  • 13:00 ~ 19:30 : 카공
  • 20:00 ~ 21:40 : CS 스터디
  • 22:00 ~ 02:00 : 테오 스프린트 3일차

테오 스프린트 3일차

아이스브레이킹

시작할 때 팀원들과 그림을 그리면서 아이스 브레이킹을 했다.

image

페이지 구성

그리고 각자 그려온 디자인을 나열해서 각 페이지 별로 쭉 발표하고 선정하는 시간을 가졌다. image

이 과정을 진행하면서 우리 프로젝트의 컨셉을 확실하게 정할 수 있었다.

처음에는 편지 형식으로 할지, 케이크 형식으로 할지 확실히 정해지지 않아 어떤 거로 가야할 지 잘 몰랐다. 이번 시간에 선택을 해야하는 부분들을 정하고, 그에 따라서 어떤 기능들이 필요한 지 정리를 했다.

선택을 하기 위해서 PL(Project Leader)와 UX 결정권자를 뽑았다. 모두의 의견을 통합해서 결론을 지어야하기 때문에 쉽지는 않았지만, 투표를 통해 최대한 많은 사람들의 의견을 반영하면서 결정을 내렸다.

BDD와 SDD

image

데이터를 화면에 그려내고 / 화면은 사용자에게 전달이 되면 / 사용자가 어떠한 행동을 하고 / 행동은 필연적으로 데이터의 변경이 일어난다.

화면을 보고 given, when, then을 적어보면서 어떤 기능들이 필요한 지를 정리했다.

이 과정을 BDD(Behavior Driven Development)라고 한다.

then의 의미

  • 사용자로 인해 when이 발생했을 때의 에상 결과 => 어딘가의 스키마 데이터의 변화

then = 데이터를 변화시키는 것

  1. state 변화
  2. effect

라고 정의할 수 있다.

이렇게 BDD를 해보면 최종적으로 thentask가 된다. 이 task들에 체크 표시를 해둬서 어느정도 완료했는지 볼 수 있게 되는 장점이 있다.

SDD(Schema Driven Development)는 개발 전에 미리 공통 스키마를 정하고 그에 맞춰서 개발하자는 방법론이다. BDD를 통해 나온 task들을 바탕으로 스키마를 만들어내는 것이다.

type Cake = {
// 케이크 색깔 + 모양
color: 'CHOCLATE' | 'CREAM' | 'BERRY';
shape: 'CIRCLE' | 'SQUARE' | 'HEART';

// 토핑
TOPPING: 'CHERRY' | 'BERRY' | 'ORANGE' | 'CHOCOLATE';
};

type Message = {
message: string;
sender: string;
reciever: string;
};

type CreateCardInputs = {
cake: Cake;
message: Message;
};

세부적인 부분까지는 정할 순 없겠지만, 최소한의 공통 스키마를 맞춰놓기 때문에 개발을 할 때 편리하다.

이제 어떤 페이지를 개발할건지 팀원들이 선택했다. 나는 제일 많은 기능이 들어간 케이크 생성 페이지를 맡았다. 이 페이지는 프론트 세명이서 개발한다. 내일은 그 팀원들과 개발할 때 페어 프로그래밍으로 진행할 예정이다.

내일 12시에 회의가 있지만, 부스트캠프 2차 코딩테스트가 있어서 참여하지 못할 것 같다. 끝나고 바로 참여해서 회의 내용을 듣고 바로 개발해야겠다. 재밌게 해보자!


내일 할 일

  • 부스트캠프 2차 코딩테스트
  • 테오 스프린트 개발 시작